Tableau Desktopでスロープグラフを作成する #tableau
はじめに
こんにちは。大阪オフィス唯一のDI部メンバー、tamaです。
みなさん、スロープグラフというグラフを知っているでしょうか。時系列データの中で、時間の離れた2点間のデータの変化を可視化するグラフです。いくつかTableau Desktopによるスロープグラフの作成記事がありましたので、今回はそれらを基に、実際にスロープグラフを試してみたいと思います。(本エントリ下部に、その記事のリンクがあります。)
そもそもスロープグラフとは
World Tech Talk in Japanese : スロープグラフへの入門 - 前編より
概要
例えば折れ線グラフは、時間の経過とともに変化していくデータの移り変わりを可視化することができます。対して、スロープグラフは、その「経過」部分を省略して、最初と最後だけのデータを可視化し、その2点のデータの差を、斜線(スロープ)で可視化します。
特徴
「シンプルでわかりやすい」という点に尽きるのではないでしょうか。その直線の傾きが、そのままデータの変化を表しているため、ひと目みればすぐわかるのが強みだと思います。
実際に作成してみる
環境
- macOS High Sierra 10.13.6
- Tableau Desktop 2018.1.2
まずは普通のやり方で
最初に、一番簡単な方法をご紹介します。
とりあえずサンプルデータストアを使って、下記のような折れ線グラフを作成します。
これは、年月毎の利益の折れ線グラフです。さらに製品カテゴリで色分けしています。つまり、製品カテゴリ毎に利益がどう移り変わっているかが分かるグラフとなっています。
さて、利益の移り変わりが知りたいのであれば、これで良いのですが、「で、結局(データ上の)一番古い時期と現在とで、利益はどれくらい変わったんだ?」という質問があった場合、このグラフでわからないことも無いですが、ちょっと目がしんどいですよね。こういう時こそスロープグラフの出番です。
先程も言ったように、方法は単純です。最初と最後以外のデータをドラッグして範囲選択し、右クリック→除外を選択して、文字通り除外します。
これで、データ上のオーダー日の最初と最後だけのデータが残りました。もうほとんどスロープグラフになっていますが、さらに見やすくするため、オーダー日を「不連続」にしましょう。
これでスロープグラフは完成です。どの製品も、昔より今のほうが利益が高いことがわかりました。
日付フィルタを連動させたい
上記の方法でスロープグラフは作成できました。
しかし、今後、このグラフを見た人から「じゃあ2017年度の最初と最後の場合は?」等の、日付データを絞った状態でのスロープグラフを求められる事が予想されます。その度に、いちいちマウスで該当データを範囲選択するのはとても面倒ですよね。(というか相当なマウスコントロール力が無いと不可能では…)
なので、日付フィルタを操作した時に、その日付フィルタ内で動的にスロープグラフが作成されるようにします。
必要なものは、下記の計算フィールドです。この計算フィールドでなぜ実現できるのかという説明は後ほど行います。まずは、下記と同じ計算フィールドを作成しましょう。
そして、この計算フィールドをフィルタに設定します。条件は「真のみ」としてください。すると、先程と同じ様なスロープグラフができます。ついでにオーダー日の表記を「カスタム日付」に変えておきましょう。列シェルフに置いているオーダー日を右クリックしてカスタム日付を選択します。そして「年/月」を選びます。
先程と同じ様なスロープグラフができました。本当に日付フィルタが連動するのか、実際にオーダー日をフィルタに設定して試してみましょう。
この計算フィールドの仕組み
なぜ、この計算フィールドでスロープグラフができるのでしょうか。
FIRST() = 0 OR LAST() = 0
- Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | Developers.IO
- FIRST関数は現在の行から最初の行までの行数を返す
- LAST関数は現在の行から最後の行までの行数を返す
この計算は「FIRST関数かLAST関数がゼロの時は真」となります。上記のことを踏まえると、現在の行から最初(または最後)の行までが0のデータのみが真となります。つまりデータ内における最初の行と最後の行のみを取得できるというわけです。
これらの関数は表計算関数なので、数表で見てみるとわかりやすいです。以下が折れ線グラフを数表にしたものです。
そして、下記が計算フィールドを有効にした場合です。
最初と最後の行だけになっていますね。別途日付フィルタがかかっていれば、対象データはそれに限られるので、日付フィルタと連動するスロープグラフができるわけですね。
折れ線グラフとスロープグラフを簡単に切り替えたい
スロープグラフは最初と最後のデータの比較には向いていますが、データの移り変わりを見るには向いていません。それぞれのグラフの目的が異なるため、場合によっては、折れ線グラフとスロープグラフを交互に見比べる必要も出てくるかと思います。
そんな時はパラメータを使用して簡単に切り替えられるようにしましょう。下記のパラメータを作成します。
そして、次に下記の計算フィールドを作成します。
これは、先程作ったパラメータの値が「折れ線」だったら、NULLじゃないデータ(=折れ線グラフに表示されるデータ)が対象、「スロープ」だったら、先程のスロープグラフ用の計算が実行されるようになっています。
後は、この計算フィールドをフィルタに入れ、作ったパラメータのパラメータコントロールを表示すれば、折れ線グラフとスロープグラフを切り替えるボタンを作成することができます。(日付フィルタも連動します)
おわりに
今回はスロープグラフの作り方について見てきました。折れ線グラフだけではわからないことが分かるかもしれないので、機会があったら使用してみてください。